Solid state drives (SSDs) experience a phenomena where one host write to the device results in multiple writes to non-volatile memory in the SSD. This occurs because with non-volatile memory, such as NANDs, a block of pages must be erased before data can be written into one of the pages in the block, which requires rewriting some of the pages in the block. Write amplification is measured by the ratio of writes committed to the non-volatile memory to the writes coming from the host system.
In SSD devices, when the pages in a block of non-volatile memory have both valid data and stale data (invalid or data not needed), a garbage collection process reads the pages having valid data and rewrite the valid data into an erased empty block to consolidate pages having valid data into fewer blocks to have more free blocks available for write operations. After the garbage collection, the blocks from which valid data was written are then free and available for further write data or garbage collection.
The garbage collection process increases write amplification, and reduces system performance, because a host write may require a whole block to be reclaimed, having valid and stale data, and all the valid data being relocated before the black can be freed for the new host write. To reduce the impact of write amplification, SSDs use over-provisioning of the non-volatile memory by leaving blocks of storage space as spare space available to garbage collection operations, where the spare space is not available to the user. The over-provisioned spare space helps lower write amplification by using the blocks in the spare space for garbage collection to free up blocks to be available for write operations. The amount of spare space impacts the efficiency of the garbage collection by impacting the expected amount of valid and stale data in the block being recycled. For instance, a drive that has greater spare capacity will have more invalid data in a block it selects for garbage collection, since the spare space corresponds to how much total invalid blocks there are in the blocks being garbage collected. Garbage collection ensures that there are always free space blocks available for the write operation so that garbage collection does not need to be used during the write operation to make space available for a write of new data to the non-volatile memory. Manufacturers may configure spare space in the non-volatile memory in the SSD that is unavailable for the user and used for garbage collection, wear leveling and other management operations.
Further, the write amplification varies with the workload and certain workloads, such as sequential writes, generally experience lower write amplification than other workloads, such as random writes. Further, if a particular host has a lower than expected host write activity level, then there may be less wear on the NAND than expected.